/* 
 * Copyright 2013-2020 Modeliosoft
 * 
 * This file is part of Modelio.
 * 
 * Modelio is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Modelio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Modelio.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.1-b02-fcs
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2010.07.19 at 01:40:57 PM CEST
//
package org.modelio.patterns.model.information;

import java.util.ArrayList;
import java.util.List;
import com.modeliosoft.modelio.javadesigner.annotations.objid;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElements;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;

/**
 * <p>
 * Java class for Pattern complex type.
 * 
 * <p>
 * The following schema fragment specifies the expected content contained within
 * this class.
 * 
 * <pre>
 * &lt;complexType name="Pattern">
 * &lt;complexContent>
 * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 * &lt;sequence maxOccurs="unbounded" minOccurs="0">
 * &lt;element name="Category" type="{}Category" minOccurs="0"/>
 * &lt;element name="ExternalDependency" type="{}ExternalDependency" maxOccurs="unbounded" minOccurs="0"/>
 * &lt;element name="Parameter" type="{}Parameter" maxOccurs="unbounded" minOccurs="0"/>
 * &lt;/sequence>
 * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
 * &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
 * &lt;attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" />
 * &lt;attribute name="image" type="{http://www.w3.org/2001/XMLSchema}string" />
 * &lt;attribute name="icone" type="{http://www.w3.org/2001/XMLSchema}string" />
 * &lt;/restriction>
 * &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 */
@objid ("3e6eb085-2b43-496f-b202-6a189b8a612a")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Pattern", propOrder = { "categoryAndExternalDependencyAndParameter" })
@XmlRootElement(name = "Pattern")
public class Pattern {
    @objid ("68e26fee-b238-41d4-b74d-889ec061cd9d")
    @XmlAttribute
    protected String name;

    @objid ("ac5d150d-50e6-4841-bf34-63bcf732bf5e")
    @XmlAttribute
    protected String version;

    @objid ("8f69046c-64ff-4c38-8de3-5156807a4b47")
    @XmlAttribute
    protected String description;

    @objid ("eec58ecc-a3ec-488a-9769-4d2c71365c31")
    @XmlAttribute
    protected String image;

    @objid ("76acd05d-8886-47a1-874e-dd70c15c33ea")
    @XmlAttribute
    protected String icone;

    @objid ("da14bdac-7661-4721-8073-102f82d453f0")
    @XmlElements({ @XmlElement(name = "Category", type = Category.class), @XmlElement(name = "Parameter", type = Parameter.class), @XmlElement(name = "ExternalDependency", type = ExternalDependency.class) })
    protected List<Object> categoryAndExternalDependencyAndParameter;

    /**
     * Gets the value of the categoryAndExternalDependencyAndParameter property.
     * 
     * <p>
     * This accessor method returns a reference to the live list, not a
     * snapshot. Therefore any modification you make to the returned list will
     * be present inside the JAXB object. This is why there is not a
     * <CODE>set</CODE> method for the categoryAndExternalDependencyAndParameter
     * property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * 
     * <pre>
     * getCategoryAndExternalDependencyAndParameter().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list {@link Category }
     * {@link Parameter } {@link ExternalDependency }
     */
    @objid ("5bb52fa2-079f-41db-a262-c4740436f9e5")
    public List<Object> getCategoryAndExternalDependencyAndParameter() {
        if (this.categoryAndExternalDependencyAndParameter == null) {
            this.categoryAndExternalDependencyAndParameter = new ArrayList<>();
        }
        return this.categoryAndExternalDependencyAndParameter;
    }

    /**
     * Gets the value of the name property.
     * @return possible object is {@link String }
     */
    @objid ("ca26507e-142f-4da0-b1ba-0d15e50197a8")
    public String getName() {
        return this.name;
    }

    /**
     * Sets the value of the name property.
     * @param value allowed object is {@link String }
     */
    @objid ("d358f474-ca0b-4ad7-a11d-8b31d8e3c0e8")
    public void setName(String value) {
        this.name = value;
    }

    /**
     * Gets the value of the version property.
     * @return possible object is {@link String }
     */
    @objid ("da728065-cb7f-46ef-9c83-61497530489d")
    public String getVersion() {
        return this.version;
    }

    /**
     * Sets the value of the version property.
     * @param value allowed object is {@link String }
     */
    @objid ("87dd3883-cd3f-4f42-a873-019afbbcb6be")
    public void setVersion(String value) {
        this.version = value;
    }

    /**
     * Gets the value of the description property.
     * @return possible object is {@link String }
     */
    @objid ("d843d3e0-56bd-40db-b2c2-a064f9833ad3")
    public String getDescription() {
        return this.description;
    }

    /**
     * Sets the value of the description property.
     * @param value allowed object is {@link String }
     */
    @objid ("f5582fe3-fea2-44aa-9010-b95eb86a3a46")
    public void setDescription(String value) {
        this.description = value;
    }

    /**
     * Gets the value of the image property.
     * @return possible object is {@link String }
     */
    @objid ("4fd294ff-0978-4c71-8114-f1d1118f9917")
    public String getImage() {
        return this.image;
    }

    /**
     * Sets the value of the image property.
     * @param value allowed object is {@link String }
     */
    @objid ("66786b1e-7df1-4c36-a3a5-e2579befe5bb")
    public void setImage(String value) {
        this.image = value;
    }

    /**
     * Gets the value of the icone property.
     * @return possible object is {@link String }
     */
    @objid ("136eae01-c9d8-4c5a-be45-a0727af8bf52")
    public String getIcone() {
        return this.icone;
    }

    /**
     * Sets the value of the icone property.
     * @param value allowed object is {@link String }
     */
    @objid ("a1c005ef-00e4-496d-9688-1994f3c878fc")
    public void setIcone(String value) {
        this.icone = value;
    }

}
